package cn.stylefeng.guns.modular.gridsystem.enums;

import cn.stylefeng.guns.core.annotion.ExpEnumType;
import cn.stylefeng.guns.core.exception.enums.abs.AbstractBaseExceptionEnum;
import cn.stylefeng.guns.core.factory.ExpEnumCodeFactory;
import cn.stylefeng.guns.modular.gridsystem.constants.BizExpEnumConstant;
import lombok.Getter;

/**
 * 网关场景表相关枚举
 *
 * @author zxw
 * @date 2022/11/08 16:22
 */
@Getter
@ExpEnumType(module = BizExpEnumConstant.GUNS_MAIN_MODULE_EXP_CODE, kind = BizExpEnumConstant.MATERIAL_EXCEPTION_ENUM)
public enum GatewaySceneExceptionEnum implements AbstractBaseExceptionEnum {

    /**
     * 场景不存在
     */
    NOT_EXISTED(1, "场景不存在"),

    /**
     * 相同名称的场景已存在
     */
    SAME_NAME_EXISTED(2, "相同名称的场景已存在"),

    /**
     * 网关配置模板不存在
     */
    CONFIG_TEMPLATE_NOT_EXISTED(3, "网关配置模板不存在"),

    /**
     * 网关配置不存在
     */
    CONFIG_NOT_EXISTED(4, "网关配置不存在");

    private final Integer code;

    private final String message;

    GatewaySceneExceptionEnum(int code, String message) {
        this.code = code;
        this.message = message;
    }

    @Override
    public Integer getCode() {
        return ExpEnumCodeFactory.getExpEnumCode(this.getClass(), code);
    }

    @Override
    public String getMessage() {
        return message;
    }

}
